import request from '../utils/request';

/**
 * 获取作业列表
 * @param {Object} params 查询参数
 * @returns {Promise} 作业列表
 */
export function getHomeworkList(params) {
  return request({
    url: '/api/homework/list',
    method: 'get',
    params
  });
}

/**
 * 获取作业详情
 * @param {String} homeworkId 作业ID
 * @returns {Promise} 作业详情
 */
export function getHomeworkDetail(homeworkId) {
  return request({
    url: `/api/homework/${homeworkId}`,
    method: 'get'
  });
}

/**
 * 创建作业
 * @param {Object} data 作业数据
 * @returns {Promise} 创建结果
 */
export function createHomework(data) {
  return request({
    url: '/api/homework',
    method: 'post',
    data
  });
}

/**
 * 更新作业
 * @param {Object} data 作业数据
 * @returns {Promise} 更新结果
 */
export function updateHomework(data) {
  return request({
    url: '/api/homework',
    method: 'put',
    data
  });
}

/**
 * 删除作业
 * @param {String} homeworkId 作业ID
 * @returns {Promise} 删除结果
 */
export function deleteHomework(homeworkId) {
  return request({
    url: `/api/homework/${homeworkId}`,
    method: 'delete'
  });
}

/**
 * 提交作业
 * @param {Object} data 作业提交数据
 * @returns {Promise} 提交结果
 */
export function submitHomework(data) {
  return request({
    url: '/api/homework/submission',
    method: 'post',
    data
  });
}

/**
 * 获取作业的提交列表
 * @param {Number} homeworkId 作业ID
 * @returns {Promise} 作业提交列表
 */
export function getHomeworkSubmissions(homeworkId) {
  return request({
    url: `/api/homework/${homeworkId}/submissions`,
    method: 'get'
  });
}

/**
 * 批改作业
 * @param {Object} data 评分数据
 * @returns {Promise} 批改结果
 */
export function gradeHomework(data) {
  return request({
    url: '/api/homework/submission/grade',
    method: 'put',
    data
  });
}

/**
 * 获取学生的作业统计
 * @param {String} studentId 学生ID
 * @returns {Promise} 统计数据
 */
export function getStudentHomeworkStats(studentId) {
  return request({
    url: `/api/homework/stats/student/${studentId}`,
    method: 'get'
  });
}

/**
 * 获取学生作业提交记录
 * @param {Number} studentId 学生ID 
 * @param {Number} homeworkId 作业ID
 * @returns {Promise} 请求结果
 */
export function getStudentHomeworkSubmission(studentId, homeworkId) {
  return request({
    url: `/api/homework/submission/student/${studentId}/homework/${homeworkId}`,
    method: 'get'
  });
}

/**
 * 获取学生提交列表
 * @param {Number} studentId 学生ID
 * @returns {Promise} 请求结果
 */
export function getStudentSubmissions(studentId) {
  return request({
    url: `/api/homework/submission/student/${studentId}`,
    method: 'get'
  });
}

/**
 * 教师发布作业
 * @param {Object} data 作业数据
 * @returns {Promise} 请求结果
 */
export function publishHomework(data) {
  return request({
    url: '/api/homework/publish',
    method: 'post',
    data
  });
}

/**
 * 批改作业
 * @param {Object} data 批改数据
 * @returns {Promise} 请求结果
 */
export function reviewHomework(data) {
  return request({
    url: '/api/homework/review',
    method: 'post',
    data
  });
}

/**
 * 获取教师班级作业列表
 * @param {Number} teacherId 教师ID
 * @returns {Promise} 请求结果
 */
export function getTeacherHomeworkList(teacherId) {
  return request({
    url: '/api/homework/teacher/list',
    method: 'get',
    params: {
      teacherId
    }
  });
}

/**
 * 获取教师的作业列表
 * @param {Object} params 查询参数，包括teacherId, page, size, title等
 * @returns {Promise} 作业列表
 */
export function getTeacherHomeworks(params) {
  return request({
    url: `/api/homework/teacher`,
    method: 'get',
    params
  });
}

// 获取学生的作业列表
export function getStudentHomeworks(studentId, page = 1, size = 10, title) {
  return request({
    url: `/api/homework/student`,
    method: 'get',
    params: {
      studentId,
      title,
      page,
      size
    }
  });
}

// 获取作业提交详情
export function getSubmissionDetail(submissionId) {
  return request({
    url: `/api/homework/submission/${submissionId}`,
    method: 'get'
  });
} 